/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejb.products;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJBException;
import javax.ejb.Singleton;
import jpa.controller.ProductoJpaController;
import jpa.entities.Producto;

/**
 *
 * @author Diego Curbelo
 */
@Singleton
public class ProductoEJB implements Serializable {

    public ProductoEJB() {
    }

     // Metodo para registrar un producto en la base de datos
     public void registrarProducto(Producto prod)throws EJBException{
        try {
            new ProductoJpaController().create(prod);
        } catch (Exception ex) {
            Logger.getLogger(ProductInvEJB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

     // Metodo que devuelve la cantidad de productos en la base de datos
     public Integer devolverCantProductos(){
         Integer id = new ProductoJpaController().getProductoCount();
         return id;
     }

     // Metodo que lista todos los productos de la base de datos
     public List listaDeProductos(){
          List <Producto> list = new ArrayList<Producto>();
          list = new ProductoJpaController().findProductoEntities();
          return list;
     }

     // Metodo que devuelve un producto con el id buscado
     public Producto devolverProductoPorId(Integer id){
         Producto producto = new ProductoJpaController().findProducto(id);
         return producto;
     }

     // Devuelve el ultimo producto registrado
     public Producto devolverUltimoProdRegistrado(){
         List prodList = listaDeProductos();
         Producto product = (Producto)prodList.get(prodList.size()-1);
         return product;
     }
}
